﻿// code03060000.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
// 多维数组的初始化、下标引用

#include <iostream>
using namespace std;

int main()
{
    //初始化
    int ia2[3][4] = { {0,1,2,3},{4,5,6,7},{8,9,10,11} };
    int ia3[3][4]={0,1,2,3,4,5,6,7,8,9,10,11};
    int ia4[3][4]={{0},{4},{8}};    //行首元素赋值，其余默认
    int ia5[3][4]={0,3,6,9};          //前几项元素赋值，其余默认

    //下标引用
    //用arr的首元素为ia最后一行的最后一个元素赋值
    int ia[3][4];
    ia[2][3] = ia2[0][0];
    int(&row)[4] = ia[1];//ia的第二行4个元素的数组的引用

    constexpr size_t rowCnt = 3, colCnt = 4;
    int ia6[rowCnt][colCnt];

    for (size_t i=0;i!=rowCnt;++i)
    {
        for (size_t j = 0; j != colCnt; ++j)
        {
            ia[i][j] = i * colCnt + j;
        }
    }

    size_t cnt = 0;
    for (auto& row : ia6)   //使用引用类型，是因为避免取出来的数组row被编译器转换为指针
    {
	    for (auto& col : row)
	    {
            col = cnt;
            ++cnt;
	    }
    }



    return 0;
}


